java使用来自其他模块的Springbean?
我想这很简单,但我找不到正确的搜索词组合来得到答案。如果我有一个多模块应用程序,我如何让模块a中的bean对模块B中的bean可用
项目设置看起来有点像这样:
project.ear/module-a.jar/resources/beans.xml
project.ear/module-a.jar/java/foo/bar.class
project.ear/module-b.war/java/foo/barFactory.class
豆子。类路径或文件系统都无法访问xml。有办法做到这一点吗?还是我应该改变一切
# 1 楼答案
我认为有一个比上面提到的3个斯卡夫曼更简单的解决方案
加入模块b.war/WEB-INF/WEB。以下几行:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/resources/beans.xml
</param-value>
</context-param>
这允许加载每个/resources/bean。来自任何类路径(即类路径上的任何jar)的xml,这对您来说已经足够了
您应该将module-a.jar作为module-b.war的一部分加载(module-a.jar位于module-b.war/WEB-INF/lib位置)
在我的项目中,我有非常相似的粒度:业务逻辑。jar及其bean的配置和前端。war使用前一个版本中通过ref=“someBean”配置的bean。它起作用了
# 2 楼答案
应用服务器可能会对EAR中的每个模块使用不同的类加载器,从而防止一个模块在另一个模块中看到资源。这是JavaEE类加载器的默认行为
你要么需要